package com.xdwanj.dao;

import com.xdwanj.pojo.Order;
import com.xdwanj.util.PageBean;


public interface OrderDao {

    /**
     * 通过订单id查询订单
     *
     * @param oid 订单id
     * @return 订单对象
     * @throws Exception
     */
    Order findOrderById(int oid) throws Exception;

    /**
     * 通过购物车表转换为订单
     *
     * @param UserId      用户id
     * @param CommodityId 商品id
     * @param com_num     商品数目
     * @return 转换的条数
     * @throws Exception
     */
    int ConversionOrderByCommodity(int UserId, int CommodityId, int com_num) throws Exception;

    /**
     * 删除订单
     *
     * @return
     * @throws Exception
     */
    int deleteOrder(int oid) throws Exception;

    /**
     * 通过用户id查询订单
     *
     * @param uid           用户id
     * @param pageSize      页面大小
     * @param currentPageNo 当前页码
     * @return 订单列表
     * @throws Exception
     */
    PageBean<Order> findOrderListByUid(int uid, int pageSize, int currentPageNo) throws Exception;

    /**
     * 更新订单
     *
     * @param id
     * @return
     * @throws Exception
     */
    int updateOrderStatus(int id, int state) throws Exception;

    /**
     * 添加订单
     *
     * @param order 订单对象
     * @param uid   用户id
     * @param coid  商品id
     * @return 成功与否
     * @throws Exception
     */
    int insertOrder(Order order, int uid, int coid) throws Exception;


    /**
     * 通过订单对象更新商品
     *
     * @param order 订单对象
     * @param uid   用户id
     * @param coid  商品id
     * @return 更新条数
     * @throws Exception
     */
    int updateOrder(Order order, int uid, int coid) throws Exception;

    /**
     * 分页查询Order表
     *
     * @param currentPageNo 当前页码
     * @param pageSize      页面大小
     * @return 分页对象
     */
    PageBean findOrderList(int currentPageNo, int pageSize) throws Exception;
}
